package sohsite.usuario.servlets;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import sohsite.excecao.EntradaInexistenteException;
import sohsite.excecao.MensagensJSP;
import sohsite.fachada.SistemaSohSite;
import sohsite.usuario.Usuario;

public class ServletAtualizarSenha extends HttpServlet{

	private static final long serialVersionUID = 1L;

	public void doPost(HttpServletRequest req,
			HttpServletResponse res)
	throws ServletException, IOException
	{
		SistemaSohSite sohSite = SistemaSohSite.getInstancia();
		int idUsuario = -1;
		try{
			idUsuario = Integer.parseInt(req.getParameter("idUsuario"));
		}catch(NumberFormatException e){
			res.sendRedirect("./jsp/mensagem.jsp"+ "?idMensagem=" + MensagensJSP.CampoInvalido);
			return;
		}
		
		Usuario user = null;
		try{
			user = sohSite.getControladorUsuario().consultarUsuario(idUsuario);
		}catch (EntradaInexistenteException e){
			res.sendRedirect("./jsp/mensagem.jsp"+ "?idMensagem=" + MensagensJSP.UsuarioInexistente);
			return;
		}
		
		
		String oldPass = req.getParameter("oldPass");
		String newPass1 = req.getParameter("newPass1");
		String newPass2 = req.getParameter("newPass2");
		
		if (!oldPass.equals(user.getSenha())){
			res.sendRedirect("./jsp/mensagem.jsp"+ "?idMensagem=" + MensagensJSP.SenhaErrada);
			return;
		}
		
		if (!newPass1.equals(newPass2)){
			res.sendRedirect("./jsp/mensagem.jsp"+ "?idMensagem=" + MensagensJSP.NovasSenhasDiferentes);
			return;
		}
		
		user.setSenha(newPass1);
		
		sohSite.getControladorUsuario().atualizarUsuario(user);
		
		res.sendRedirect("jsp/editarSenha.jsp");
	}
}
